package zuo.biao.apijson.parser.builder;


import zuo.biao.apijson.parser.ParserDomain;
import zuo.biao.apijson.parser.provider.SQLProvider;

/**
 * 建造者: 构建不同类型的语句,如: sql / cypher / .... <br/>
 * 用于生成和 {@link BuilderType } 对应的语句。<br/>
 * 对于 {@link SQLBuilder} 就是组装生成sql语句。<br/>
 */
public interface Builder {
    /**
     * 获得要建造的类型。
     * @return
     */
//    BuilderType getStatementType();
    ParserDomain selectSQL(Appendable appendable, SQLProvider sqlProvider);

    ParserDomain insertSQL(Appendable appendable, SQLProvider sqlProvider);

    ParserDomain deleteSQL(Appendable appendable, SQLProvider sqlProvider);

    ParserDomain updateSQL(Appendable appendable, SQLProvider sqlProvider);
}
